package siau.android.http;

import hhm.android.http.ResultBean;
import io.reactivex.rxjava3.core.Observable;
import retrofit2.http.Body;
import retrofit2.http.Headers;
import retrofit2.http.POST;

public interface InterfaceService {

    String GET_CAPTCHA = "bubble/user/api/oauth/getCaptcha";//获取短信验证码
    String SMS_LOGIN = "bubble/smsLogin";//短信验证码登录
    String PASSWORD_LOGIN = "bubble/login";//密码登录
    String CREATE_FAMILY = "bubble/user/api/family/createFamily";//创建家庭
    String REFRESH_TOKEN = "bubble/user/api/oauth/refreshToken";//刷新token
    String GET_DEFAULT_FAMILY = "bubble/user/api/family/getDefaultFamily";//获取家庭和孩子记录
    String CHILD_HOME_DATA = "bubble/user/api/child/childHomeData";//获取孩子首页数据
    String GET_FOOT_RECORD = "bubble/user/api/child/getFootRecord";//获取孩子脚长
    String ADD_CHILD = "bubble/user/api/child/addChild";//添加孩子
    String GROW_TREND = "bubble/user/api/child/growTrend";//成长史 图表
    String LIST_HISTORY = "bubble/user/api/child/listHistory";//历史记录列表
    String DELETE_HISTORY = "bubble/user/api/child/delHistory";//删除历史数据
    String USER_FAMILY_LIST = "bubble/user/api/family/listUserFamily";//获取家庭列表
    String SWAP_FAMILY = "bubble/user/api/family/swapDefaultFamily";//更换家庭
    String RECORD_WEIGHT = "bubble/user/api/child/recordWeight";//记录体重
    String RECORD_HEIGHT = "bubble/user/api/child/recordHeight";//记录身高
    String RECORD_FOOT_SIZE = "bubble/user/api/child/recordFoot";//记录脚长
    String MY_BABY_LIST = "bubble/user/api/child/listChild";//我的宝宝列表
    String LIST_FAMILY = "bubble/user/api/family/listFamilyMember";//亲友团
    String QUIT_FAMILY = "bubble/user/api/family/quitFamily";//退出家庭
    String DELETE_FAMILY_MEMBER = "bubble/user/api/family/delFamilyMember";//踢出家庭
    String DELETE_CHILD = "bubble/user/api/child/delChild";//删除孩子
    String GET_CHILD_INFO = "bubble/user/api/child/getChildInfo";//获取孩子信息
    String EDIT_CHILD = "bubble/user/api/child/editChild";//编辑孩子信息
    String CHANGE_IDENTITY = "bubble/user/api/changeIdentity";//选取身份
    String SCAN_ADD_FAMILY = "bubble/user/api/family/appJoinFamily";//扫码加入家庭
    String FORGET_PASSWORD = "bubble/user/api/oauth/smsModifyPassword";//忘记密码
    String GET_USER_INFO = "bubble/user/api/getUserInfo";//获取用户信息
    String EDIT_USER_INFO = "bubble/user/api/editUserInfo";//更新用户信息
    String SET_PASSWORD = "bubble/user/api/setPassword";//设置登录密码
    String CHANGE_PASSWORD = "bubble/user/api/modifyPassword";//修改登录密码
    String GET_WX_INFO = "bubble/user/api/oauth/getWxInfo";//微信登录
    String UNBIND_WX = "bubble/user/api/unbindWx";//解绑微信
    String BIND_WX = "bubble/user/api/bindWx";//绑定微信
    String MESSAGE_LIST = "bubble/user/api/notify/notifyPage";//消息列表
    String READ_MARK = "bubble/user/api/notify/readMark";//标为已读
    String HIDE_NOTIFY = "bubble/user/api/notify/hideNotify";//删除消息列表
    String SYSTEM_MESSAGE_LIST = "bubble/user/api/notify/listMessage";//系统消息详情
    String BIND_DEVICE_LIST = "bubble/user/api/device/listDevice";//用户绑定的设备列表
    String LIST_DEVICE_TYPE = "bubble/user/api/device/listDeviceType";//获取设备列表
    String LIST_DEVICE_TYPE2 = "bubble/user/api/device/listProduct";//获取设备次级列表
    String QINIU_INFO = "bubble/user/api/base/qiniu/authToken";//七牛云获取Token
    String CHANGE_PHONE = "bubble/user/api/editMobile";//修改手机号
    String CLICK_PUSH_MESSAGE = "bubble/user/api/userLog/addLog";//点击推送消息
    String DOWNLOAD_RESOURCE = "bubble/user/api/oauth/downSource/add";//记录下载来源
    String UPDATE = "bubble/user/api/oauth/versionLog/getVersion";//版本更新
    String GET_ANALYSE_DATES = "bubble/user/api/Analysis/getAnalysisDate";//获取有数据分析的日期
    String GET_ANALYSE_DATE = "bubble/user/api/Analysis/getAnalysis";//获取某天的数据分析
    String ADD_DEVICE = "bubble/user/api/device/addDevice";//添加硬件设备
    String UNBIND_DEVICE = "bubble/user/api/device/unbindDevice";//解绑设备
    String CHECK_CAN_BIND = "bubble/user/api/device/checkByBluetooth";//校验是否可以绑定
    String SHOE_SIZE_CLASS_LIST = "bubble/user/api/family/listShoesSizeType";//鞋码列表
    String SWAP_SHOE_SIZE_TYPE = "bubble/user/api/family/swapDefaultShoeType";//更换鞋码类型
    String MAKE_OVER_FAMILY = "bubble/user/api/family/makeOverFamily";//转让家庭权限
    String FAMILY_COUNT = "bubble/user/api/family/familyCount";//用户加入的家庭数
    String SWAP_UNIT = "bubble/user/api/family/swapUnit";//更换默认单位
    String HOME_ADVERTISEMENT = "bubble/user/api/common/advert/query";//首页广告接口
    String HIDE_HOME_ADVERTISEMENT = "bubble/user/api/common/advert/cancel";//关闭广告接口
    String COMMUNITY_ACTIVITY_DETAIL = "bubble/user/api/communityActive/active/detail";//社区活动详情 h5跳转进来获取详情用
    String GET_REMAINING_TIME = "bubble/user/api/product/toothbrush/getRemainingTime";//查询牙刷剩余时间
    String GET_BRUSH_LIST = "bubble/user/api/product/toothbrush/getBrushList";//查询刷牙数据
    String UPDATE_DEVICE_INFO = "bubble/user/api/device/update";//修改设备信息
    String UPDATE_CID_CHECK_LOGIN = "bubble/user/api/checkLogin";//上传cid

    @POST(GET_CAPTCHA)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> getCaptcha(@Body SignRequest signRequest);

    @POST(SMS_LOGIN)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> smsLogin(@Body SignRequest signRequest);

    @POST(PASSWORD_LOGIN)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> passwordLogin(@Body SignRequest signRequest);

    @POST(CREATE_FAMILY)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> createFamily(@Body SignRequest signRequest);

    @POST(REFRESH_TOKEN)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> refreshToken(@Body SignRequest signRequest);

    @POST(GET_DEFAULT_FAMILY)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> getDefaultFamily();

    @POST(CHILD_HOME_DATA)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> getChildHomeData(@Body SignRequest signRequest);

    @POST(GET_FOOT_RECORD)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> getFootRecord(@Body SignRequest signRequest);

    @POST(ADD_CHILD)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> addChild(@Body SignRequest signRequest);

    @POST(GROW_TREND)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> growTrend(@Body SignRequest signRequest);

    @POST(LIST_HISTORY)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> listHistory(@Body SignRequest signRequest);

    @POST(DELETE_HISTORY)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> deleteHistory(@Body SignRequest signRequest);

    @POST(USER_FAMILY_LIST)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> getFamilyList();

    @POST(SWAP_FAMILY)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> changeFamily(@Body SignRequest signRequest);

    @POST(RECORD_WEIGHT)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> recordWeight(@Body SignRequest signRequest);

    @POST(RECORD_HEIGHT)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> recordHeight(@Body SignRequest signRequest);

    @POST(RECORD_FOOT_SIZE)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> recordFootSize(@Body SignRequest signRequest);

    @POST(MY_BABY_LIST)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> myBabyList();

    @POST(LIST_FAMILY)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> friendList();

    @POST(QUIT_FAMILY)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> quitFamily(@Body SignRequest signRequest);

    @POST(DELETE_FAMILY_MEMBER)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> deleteFamilyMember(@Body SignRequest signRequest);

    @POST(DELETE_CHILD)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> deleteChild(@Body SignRequest signRequest);

    @POST(GET_CHILD_INFO)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> getChildInfo(@Body SignRequest signRequest);

    @POST(EDIT_CHILD)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> editChild(@Body SignRequest signRequest);

    @POST(CHANGE_IDENTITY)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> changeIdentity(@Body SignRequest signRequest);

    @POST(SCAN_ADD_FAMILY)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> scanAddFamily(@Body SignRequest signRequest);

    @POST(FORGET_PASSWORD)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> forgetPassword(@Body SignRequest signRequest);

    @POST(GET_USER_INFO)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> getUserInfo();

    @POST(EDIT_USER_INFO)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> editUserInfo(@Body SignRequest signRequest);

    @POST(SET_PASSWORD)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> setPassword(@Body SignRequest signRequest);

    @POST(CHANGE_PASSWORD)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> changePassword(@Body SignRequest signRequest);

    @POST(GET_WX_INFO)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> getWXInfo(@Body SignRequest signRequest);

    @POST(UNBIND_WX)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> unBindWx();

    @POST(BIND_WX)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> bindWx(@Body SignRequest signRequest);

    @POST(MESSAGE_LIST)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> getMessageList(@Body SignRequest signRequest);

    @POST(READ_MARK)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> readMark(@Body SignRequest signRequest);

    @POST(HIDE_NOTIFY)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> hideNotify(@Body SignRequest signRequest);

    @POST(SYSTEM_MESSAGE_LIST)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> getSystemMessageList(@Body SignRequest signRequest);

    @POST(BIND_DEVICE_LIST)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> getBindDeviceList();

    @POST(LIST_DEVICE_TYPE)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> getListType(@Body SignRequest signRequest);

    @POST(LIST_DEVICE_TYPE2)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> getListType2(@Body SignRequest signRequest);

    @POST(QINIU_INFO)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> getQiNiuInfo();

    @POST(CHANGE_PHONE)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> changePhone(@Body SignRequest signRequest);

    @POST(CLICK_PUSH_MESSAGE)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> clickPushMessage(@Body SignRequest signRequest);

    @POST(DOWNLOAD_RESOURCE)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> downloadResource(@Body SignRequest signRequest);

    @POST(UPDATE)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> getUpdateInfo(@Body SignRequest signRequest);

    @POST(GET_ANALYSE_DATES)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> getAnalyseDates(@Body SignRequest signRequest);

    @POST(GET_ANALYSE_DATE)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> getAnalyseDate(@Body SignRequest signRequest);

    @POST(ADD_DEVICE)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> addDevice(@Body SignRequest signRequest);

    @POST(UNBIND_DEVICE)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> unbindDevice(@Body SignRequest signRequest);

    @POST(CHECK_CAN_BIND)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> checkCanBindBluetooth(@Body SignRequest signRequest);

    @POST(SHOE_SIZE_CLASS_LIST)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> shoeSizeList();

    @POST(SWAP_SHOE_SIZE_TYPE)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> swapShoeSizeType(@Body SignRequest signRequest);

    @POST(MAKE_OVER_FAMILY)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> makeOverFamily(@Body SignRequest signRequest);

    @POST(FAMILY_COUNT)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> familyCount();

    @POST(SWAP_UNIT)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> swapUnit(@Body SignRequest signRequest);

    @POST(HOME_ADVERTISEMENT)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> checkAd();

    @POST(HIDE_HOME_ADVERTISEMENT)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> hideAd(@Body SignRequest signRequest);

    @POST(COMMUNITY_ACTIVITY_DETAIL)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> communityActivityDetail(@Body SignRequest signRequest);

    @POST(GET_REMAINING_TIME)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> getRemainingTime(@Body SignRequest signRequest);

    @POST(GET_BRUSH_LIST)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> getBrushList(@Body SignRequest signRequest);

    @POST(UPDATE_DEVICE_INFO)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> updateDeviceInfo(@Body SignRequest signRequest);

    @POST(UPDATE_CID_CHECK_LOGIN)
    @Headers("Content-Type:application/json")
    Observable<ResultBean> updateCid(@Body SignRequest signRequest);

}
